<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.12.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>NeuZephyr: D:/Users/Mgepahmge/Documents/C Program/NeuZephyr/include/NeuZephyr/Optimizer.cuh Source File</title>
<link rel="icon" href="NZ_logo2.png" type="image/x-icon" />
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectlogo"><img alt="Logo" src="NZ_logo2.png"/></td>
  <td id="projectalign">
   <div id="projectname">NeuZephyr
   </div>
   <div id="projectbrief">Simple DL Framework</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.12.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_d522931ffa1371640980b621734a4381.html">Users</a></li><li class="navelem"><a class="el" href="dir_a7e6ee1ae3f772c9504a0b543f2027e2.html">Mgepahmge</a></li><li class="navelem"><a class="el" href="dir_e03f57e346cc4845a4c354a35630b169.html">Documents</a></li><li class="navelem"><a class="el" href="dir_231a0482af2b83c895f27ba7fe745141.html">C Program</a></li><li class="navelem"><a class="el" href="dir_0fa7fc3a0dfd304dbfc9dce9f6facfa2.html">NeuZephyr</a></li><li class="navelem"><a class="el" href="dir_e7295b03dab2e9cdf32139bd8ec2e607.html">include</a></li><li class="navelem"><a class="el" href="dir_657344ecc65cfc28732701509f8d8421.html">NeuZephyr</a></li>  </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
  <div class="headertitle"><div class="title">Optimizer.cuh</div></div>
</div><!--header-->
<div class="contents">
<a href="_optimizer_8cuh.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span><span class="preprocessor">#ifndef OPTIMIZER_CUH</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span><span class="preprocessor">#define OPTIMIZER_CUH</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span><span class="preprocessor">#include &lt;unordered_map&gt;</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span><span class="preprocessor">#include &quot;<a class="code" href="_nodes_8cuh.html">Nodes.cuh</a>&quot;</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span> </div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno">   87</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacenz_1_1opt.html">nz::opt</a> {</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno">   88</span>    <span class="keyword">using namespace </span>data;</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span>    <span class="keyword">using namespace </span>nodes;</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span> </div>
<div class="foldopen" id="foldopen00125" data-start="{" data-end="};">
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="classnz_1_1opt_1_1_optimizer.html">  125</a></span>    <span class="keyword">class </span>DL_API <a class="code hl_class" href="classnz_1_1opt_1_1_optimizer.html">Optimizer</a> {</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno">  126</span>    <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno">  127</span>        Tensor::value_type learning_rate;</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno">  128</span> </div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno">  129</span>    <span class="keyword">public</span>:</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"><a class="line" href="classnz_1_1opt_1_1_optimizer.html#aaf8d92566a815254dbb0ace9af9cb1ae">  146</a></span>        <span class="keyword">explicit</span> <a class="code hl_function" href="classnz_1_1opt_1_1_optimizer.html#aaf8d92566a815254dbb0ace9af9cb1ae">Optimizer</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno">  147</span> </div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"><a class="line" href="classnz_1_1opt_1_1_optimizer.html#ab9262983ef3bd11e6f548862b2f58e1d">  172</a></span>        <span class="keyword">virtual</span> <a class="code hl_function" href="classnz_1_1opt_1_1_optimizer.html#ab9262983ef3bd11e6f548862b2f58e1d">~Optimizer</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno">  173</span> </div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"><a class="line" href="classnz_1_1opt_1_1_optimizer.html#a826381abaaf29dbebade7cfd38b266e4">  204</a></span>        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classnz_1_1opt_1_1_optimizer.html#a826381abaaf29dbebade7cfd38b266e4">step</a>(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input) = 0;</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno">  205</span>    };</div>
</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno">  206</span> </div>
<div class="foldopen" id="foldopen00250" data-start="{" data-end="};">
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"><a class="line" href="classnz_1_1opt_1_1_s_g_d.html">  250</a></span>    <span class="keyword">class </span>DL_API <a class="code hl_class" href="classnz_1_1opt_1_1_s_g_d.html">SGD</a> : <span class="keyword">public</span> <a class="code hl_class" href="classnz_1_1opt_1_1_optimizer.html">Optimizer</a> {</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno">  251</span>    <span class="keyword">public</span>:</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno">  276</span>        <span class="keyword">explicit</span> <a class="code hl_class" href="classnz_1_1opt_1_1_s_g_d.html">SGD</a>(Tensor::value_type learning_rate);</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno">  277</span> </div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno">  306</span>        <span class="keywordtype">void</span> step(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input) <span class="keyword">override</span>;</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno">  307</span>    };</div>
</div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno">  308</span> </div>
<div class="foldopen" id="foldopen00352" data-start="{" data-end="};">
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"><a class="line" href="classnz_1_1opt_1_1_momentum.html">  352</a></span>    <span class="keyword">class </span>DL_API <a class="code hl_class" href="classnz_1_1opt_1_1_momentum.html">Momentum</a> : <span class="keyword">public</span> <a class="code hl_class" href="classnz_1_1opt_1_1_optimizer.html">Optimizer</a> {</div>
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno">  353</span>        std::pmr::unordered_map&lt;Node*, Tensor&gt; velocity;</div>
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno">  354</span>        Tensor::value_type beta;</div>
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno">  355</span> </div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno">  356</span>    <span class="keyword">public</span>:</div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno">  379</span>        <span class="keyword">explicit</span> <a class="code hl_class" href="classnz_1_1opt_1_1_momentum.html">Momentum</a>(Tensor::value_type learning_rate, Tensor::value_type beta);</div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno">  380</span> </div>
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno">  413</span>        <span class="keywordtype">void</span> step(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input) <span class="keyword">override</span>;</div>
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno">  414</span>    };</div>
</div>
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno">  415</span> </div>
<div class="foldopen" id="foldopen00458" data-start="{" data-end="};">
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"><a class="line" href="classnz_1_1opt_1_1_ada_grad.html">  458</a></span>    <span class="keyword">class </span>DL_API <a class="code hl_class" href="classnz_1_1opt_1_1_ada_grad.html">AdaGrad</a> : <span class="keyword">public</span> <a class="code hl_class" href="classnz_1_1opt_1_1_optimizer.html">Optimizer</a> {</div>
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno">  459</span>        std::unordered_map&lt;Node*, Tensor&gt; gss;</div>
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno">  460</span>        Tensor::value_type epsilon = 1e-6;</div>
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno">  461</span> </div>
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno">  462</span>    <span class="keyword">public</span>:</div>
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno">  489</span>        <span class="keyword">explicit</span> <a class="code hl_class" href="classnz_1_1opt_1_1_ada_grad.html">AdaGrad</a>(Tensor::value_type learning_rate);</div>
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno">  490</span> </div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno">  522</span>        <span class="keywordtype">void</span> step(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input) <span class="keyword">override</span>;</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno">  523</span>    };</div>
</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno">  524</span> </div>
<div class="foldopen" id="foldopen00577" data-start="{" data-end="};">
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"><a class="line" href="classnz_1_1opt_1_1_r_m_sprop.html">  577</a></span>    <span class="keyword">class </span>DL_API <a class="code hl_class" href="classnz_1_1opt_1_1_r_m_sprop.html">RMSprop</a> : <span class="keyword">public</span> <a class="code hl_class" href="classnz_1_1opt_1_1_optimizer.html">Optimizer</a> {</div>
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno">  578</span>        std::unordered_map&lt;Node*, Tensor&gt; v;</div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno">  579</span>        Tensor::value_type decay_rate;</div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno">  580</span>        Tensor::value_type epsilon = 1e-6;</div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno">  581</span> </div>
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno">  582</span>    <span class="keyword">public</span>:</div>
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno">  613</span>        <span class="keyword">explicit</span> <a class="code hl_class" href="classnz_1_1opt_1_1_r_m_sprop.html">RMSprop</a>(Tensor::value_type learning_rate, Tensor::value_type decay_rate);</div>
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno">  614</span> </div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno">  648</span>        <span class="keywordtype">void</span> step(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input) <span class="keyword">override</span>;</div>
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno">  649</span>    };</div>
</div>
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno">  650</span> </div>
<div class="foldopen" id="foldopen00707" data-start="{" data-end="};">
<div class="line"><a id="l00707" name="l00707"></a><span class="lineno"><a class="line" href="classnz_1_1opt_1_1_adam.html">  707</a></span>    <span class="keyword">class </span>DL_API <a class="code hl_class" href="classnz_1_1opt_1_1_adam.html">Adam</a> : <span class="keyword">public</span> <a class="code hl_class" href="classnz_1_1opt_1_1_optimizer.html">Optimizer</a> {</div>
<div class="line"><a id="l00708" name="l00708"></a><span class="lineno">  708</span>        std::unordered_map&lt;Node*, Tensor&gt; m;</div>
<div class="line"><a id="l00709" name="l00709"></a><span class="lineno">  709</span>        std::unordered_map&lt;Node*, Tensor&gt; v;</div>
<div class="line"><a id="l00710" name="l00710"></a><span class="lineno">  710</span>        Tensor::value_type beta1;</div>
<div class="line"><a id="l00711" name="l00711"></a><span class="lineno">  711</span>        Tensor::value_type beta2;</div>
<div class="line"><a id="l00712" name="l00712"></a><span class="lineno">  712</span>        <span class="keywordtype">int</span> it;</div>
<div class="line"><a id="l00713" name="l00713"></a><span class="lineno">  713</span>        Tensor::value_type epsilon = 1e-6;</div>
<div class="line"><a id="l00714" name="l00714"></a><span class="lineno">  714</span> </div>
<div class="line"><a id="l00715" name="l00715"></a><span class="lineno">  715</span>    <span class="keyword">public</span>:</div>
<div class="line"><a id="l00746" name="l00746"></a><span class="lineno">  746</span>        <span class="keyword">explicit</span> <a class="code hl_class" href="classnz_1_1opt_1_1_adam.html">Adam</a>(Tensor::value_type learning_rate, Tensor::value_type beta1, Tensor::value_type beta2);</div>
<div class="line"><a id="l00747" name="l00747"></a><span class="lineno">  747</span> </div>
<div class="line"><a id="l00782" name="l00782"></a><span class="lineno">  782</span>        <span class="keywordtype">void</span> step(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input) <span class="keyword">override</span>;</div>
<div class="line"><a id="l00783" name="l00783"></a><span class="lineno">  783</span>    };</div>
</div>
<div class="line"><a id="l00784" name="l00784"></a><span class="lineno">  784</span> </div>
<div class="foldopen" id="foldopen00844" data-start="{" data-end="};">
<div class="line"><a id="l00844" name="l00844"></a><span class="lineno"><a class="line" href="classnz_1_1opt_1_1_n_adam.html">  844</a></span>    <span class="keyword">class </span>DL_API <a class="code hl_class" href="classnz_1_1opt_1_1_n_adam.html">NAdam</a> : <span class="keyword">public</span> <a class="code hl_class" href="classnz_1_1opt_1_1_optimizer.html">Optimizer</a> {</div>
<div class="line"><a id="l00845" name="l00845"></a><span class="lineno">  845</span>        std::unordered_map&lt;Node*, Tensor&gt; m;</div>
<div class="line"><a id="l00846" name="l00846"></a><span class="lineno">  846</span>        std::unordered_map&lt;Node*, Tensor&gt; m_modified;</div>
<div class="line"><a id="l00847" name="l00847"></a><span class="lineno">  847</span>        std::unordered_map&lt;Node*, Tensor&gt; v;</div>
<div class="line"><a id="l00848" name="l00848"></a><span class="lineno">  848</span>        Tensor::value_type beta1;</div>
<div class="line"><a id="l00849" name="l00849"></a><span class="lineno">  849</span>        Tensor::value_type beta2;</div>
<div class="line"><a id="l00850" name="l00850"></a><span class="lineno">  850</span>        <span class="keywordtype">int</span> it;</div>
<div class="line"><a id="l00851" name="l00851"></a><span class="lineno">  851</span>        Tensor::value_type epsilon = 1e-6;</div>
<div class="line"><a id="l00852" name="l00852"></a><span class="lineno">  852</span> </div>
<div class="line"><a id="l00853" name="l00853"></a><span class="lineno">  853</span>    <span class="keyword">public</span>:</div>
<div class="line"><a id="l00894" name="l00894"></a><span class="lineno">  894</span>        <span class="keyword">explicit</span> <a class="code hl_class" href="classnz_1_1opt_1_1_n_adam.html">NAdam</a>(Tensor::value_type learning_rate, Tensor::value_type beta1, Tensor::value_type beta2);</div>
<div class="line"><a id="l00895" name="l00895"></a><span class="lineno">  895</span> </div>
<div class="line"><a id="l00932" name="l00932"></a><span class="lineno">  932</span>        <span class="keywordtype">void</span> step(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input) <span class="keyword">override</span>;</div>
<div class="line"><a id="l00933" name="l00933"></a><span class="lineno">  933</span>    };</div>
</div>
<div class="line"><a id="l00934" name="l00934"></a><span class="lineno">  934</span> </div>
<div class="foldopen" id="foldopen00987" data-start="{" data-end="};">
<div class="line"><a id="l00987" name="l00987"></a><span class="lineno"><a class="line" href="classnz_1_1opt_1_1_ada_delta.html">  987</a></span>    <span class="keyword">class </span>DL_API <a class="code hl_class" href="classnz_1_1opt_1_1_ada_delta.html">AdaDelta</a> : <span class="keyword">public</span> <a class="code hl_class" href="classnz_1_1opt_1_1_optimizer.html">Optimizer</a> {</div>
<div class="line"><a id="l00988" name="l00988"></a><span class="lineno">  988</span>        std::unordered_map&lt;Node*, Tensor&gt; acc_delta;</div>
<div class="line"><a id="l00989" name="l00989"></a><span class="lineno">  989</span>        std::unordered_map&lt;Node*, Tensor&gt; acc_grad;</div>
<div class="line"><a id="l00990" name="l00990"></a><span class="lineno">  990</span>        Tensor::value_type epsilon = 1e-6;</div>
<div class="line"><a id="l00991" name="l00991"></a><span class="lineno">  991</span> </div>
<div class="line"><a id="l00992" name="l00992"></a><span class="lineno">  992</span>    <span class="keyword">public</span>:</div>
<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span>        <span class="keyword">explicit</span> <a class="code hl_class" href="classnz_1_1opt_1_1_ada_delta.html">AdaDelta</a>(Tensor::value_type rho);</div>
<div class="line"><a id="l01027" name="l01027"></a><span class="lineno"> 1027</span> </div>
<div class="line"><a id="l01062" name="l01062"></a><span class="lineno"> 1062</span>        <span class="keywordtype">void</span> step(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input) <span class="keyword">override</span>;</div>
<div class="line"><a id="l01063" name="l01063"></a><span class="lineno"> 1063</span>    };</div>
</div>
<div class="line"><a id="l01064" name="l01064"></a><span class="lineno"> 1064</span>}</div>
<div class="line"><a id="l01065" name="l01065"></a><span class="lineno"> 1065</span> </div>
<div class="line"><a id="l01066" name="l01066"></a><span class="lineno"> 1066</span><span class="preprocessor">#endif </span><span class="comment">// OPTIMIZER_CUH</span></div>
<div class="ttc" id="a_nodes_8cuh_html"><div class="ttname"><a href="_nodes_8cuh.html">Nodes.cuh</a></div><div class="ttdoc">Declaration of the Node class and various derived node classes for neural network operations.</div></div>
<div class="ttc" id="aclassnz_1_1nodes_1_1_node_html"><div class="ttname"><a href="classnz_1_1nodes_1_1_node.html">nz::nodes::Node</a></div><div class="ttdoc">Base class for nodes in a neural network or computational graph.</div><div class="ttdef"><b>Definition</b> <a href="_nodes_8cuh_source.html#l00114">Nodes.cuh:114</a></div></div>
<div class="ttc" id="aclassnz_1_1opt_1_1_ada_delta_html"><div class="ttname"><a href="classnz_1_1opt_1_1_ada_delta.html">nz::opt::AdaDelta</a></div><div class="ttdoc">AdaDelta optimizer for deep learning models.</div><div class="ttdef"><b>Definition</b> <a href="#l00987">Optimizer.cuh:987</a></div></div>
<div class="ttc" id="aclassnz_1_1opt_1_1_ada_grad_html"><div class="ttname"><a href="classnz_1_1opt_1_1_ada_grad.html">nz::opt::AdaGrad</a></div><div class="ttdoc">AdaGrad optimizer for deep learning models.</div><div class="ttdef"><b>Definition</b> <a href="#l00458">Optimizer.cuh:458</a></div></div>
<div class="ttc" id="aclassnz_1_1opt_1_1_adam_html"><div class="ttname"><a href="classnz_1_1opt_1_1_adam.html">nz::opt::Adam</a></div><div class="ttdoc">Adam optimizer for deep learning models.</div><div class="ttdef"><b>Definition</b> <a href="#l00707">Optimizer.cuh:707</a></div></div>
<div class="ttc" id="aclassnz_1_1opt_1_1_momentum_html"><div class="ttname"><a href="classnz_1_1opt_1_1_momentum.html">nz::opt::Momentum</a></div><div class="ttdoc">Momentum optimizer for deep learning models.</div><div class="ttdef"><b>Definition</b> <a href="#l00352">Optimizer.cuh:352</a></div></div>
<div class="ttc" id="aclassnz_1_1opt_1_1_n_adam_html"><div class="ttname"><a href="classnz_1_1opt_1_1_n_adam.html">nz::opt::NAdam</a></div><div class="ttdoc">NAdam optimizer for deep learning models.</div><div class="ttdef"><b>Definition</b> <a href="#l00844">Optimizer.cuh:844</a></div></div>
<div class="ttc" id="aclassnz_1_1opt_1_1_optimizer_html"><div class="ttname"><a href="classnz_1_1opt_1_1_optimizer.html">nz::opt::Optimizer</a></div><div class="ttdoc">Base class for optimization algorithms in deep learning.</div><div class="ttdef"><b>Definition</b> <a href="#l00125">Optimizer.cuh:125</a></div></div>
<div class="ttc" id="aclassnz_1_1opt_1_1_optimizer_html_a826381abaaf29dbebade7cfd38b266e4"><div class="ttname"><a href="classnz_1_1opt_1_1_optimizer.html#a826381abaaf29dbebade7cfd38b266e4">nz::opt::Optimizer::step</a></div><div class="ttdeci">virtual void step(Node *input)=0</div><div class="ttdoc">Pure virtual function for performing a single optimization step.</div></div>
<div class="ttc" id="aclassnz_1_1opt_1_1_optimizer_html_aaf8d92566a815254dbb0ace9af9cb1ae"><div class="ttname"><a href="classnz_1_1opt_1_1_optimizer.html#aaf8d92566a815254dbb0ace9af9cb1ae">nz::opt::Optimizer::Optimizer</a></div><div class="ttdeci">Optimizer()=default</div><div class="ttdoc">Default constructor for the Optimizer class.</div></div>
<div class="ttc" id="aclassnz_1_1opt_1_1_optimizer_html_ab9262983ef3bd11e6f548862b2f58e1d"><div class="ttname"><a href="classnz_1_1opt_1_1_optimizer.html#ab9262983ef3bd11e6f548862b2f58e1d">nz::opt::Optimizer::~Optimizer</a></div><div class="ttdeci">virtual ~Optimizer()=default</div><div class="ttdoc">Default destructor for the Optimizer class.</div></div>
<div class="ttc" id="aclassnz_1_1opt_1_1_r_m_sprop_html"><div class="ttname"><a href="classnz_1_1opt_1_1_r_m_sprop.html">nz::opt::RMSprop</a></div><div class="ttdoc">RMSprop optimizer for deep learning models.</div><div class="ttdef"><b>Definition</b> <a href="#l00577">Optimizer.cuh:577</a></div></div>
<div class="ttc" id="aclassnz_1_1opt_1_1_s_g_d_html"><div class="ttname"><a href="classnz_1_1opt_1_1_s_g_d.html">nz::opt::SGD</a></div><div class="ttdoc">Stochastic Gradient Descent (SGD) optimizer for deep learning models.</div><div class="ttdef"><b>Definition</b> <a href="#l00250">Optimizer.cuh:250</a></div></div>
<div class="ttc" id="anamespacenz_1_1opt_html"><div class="ttname"><a href="namespacenz_1_1opt.html">nz::opt</a></div><div class="ttdoc">Contains optimization algorithms for training deep learning models.</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>
